#!/usr/bin/env python3

import sys
import pygame

def toColor(color):
    if type(color) == tuple:
        return color # 输入颜色是元祖，直接返回
    return color >> 16 & 0xFF, color >> 8 & 0xFF, color & 0xFF
        # 输入不是元祖，对输入值进行转换成元祖
def draw_pixel(dst, x, y, color): # 画点(目标(载体)、坐标、颜色)
    dst.fill(toColor(color), (x, y, 1, 1))
            # 点的颜色，坐标，在载体上的位置

def draw_circle(dst, x, y, r, color): #② 利用勾股定理自己画圆
    for i in range(y - r, y + r + 1):
        for j in range(x - r, x + r + 1):# 画出一个正方形
            if (x - j) ** 2 + (y - i) ** 2 <= r **2: # 利用勾股定理判断需要画出的点
                draw_pixel(dst, j, i, color)

def main(argv):
    pygame.init()

    screen = pygame.display.set_mode((600, 480))

     #   draw_pixel(screen, 100, 100, 0xFF0000)
        # 画点(载体，坐标，颜色)

    #for i in range(100):
     #   draw_pixel(screen, 100 + i, 100, 0xFF0000)
        # 点画线(载体，坐标，颜色)

    pygame.draw.line(screen, (255, 0, 0), (100, 100), (200, 200))
        # 画斜线(载体，颜色，起始坐标，结束坐标，不写默认宽度为一)

    #① pygame系统画圆   pygame.draw.circle(screen, (255, 0, 0), (100, 100), 50)
        # 第一种方法画圆(载体，颜色，在载体上的位置，半径)

    #② 自己画圆 draw_circle(screen, 100, 100, 50, 0xFF0000)
            #第二种方法画圆(载体，坐标，半径，颜色)
    pygame.display.update()

    while True:
        e = pygame.event.wait()
        if e.type == pygame.QUIT:
            break
        elif e.type == pygame.MOUSEBUTTONDOWN:
            print("button: ", e.button, ", pos = ", e.pos)
        elif e.type == pygame.KEYDOWN:
            if e.key == pygame.K_ESCAPE or e.key == pygame.K_q:
                break

    pygame.quit()


if __name__ == '__main__':
    main(sys.argv)

